home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / phpscheduleit_xss.nasl < prev    next >
Text File  |  2005-01-14  |  2KB  |  84 lines

  1. #
  2. # (C) Tenable Network Security
  3. #
  4.  
  5. if(description)
  6. {
  7.  script_id(14613);
  8.  script_bugtraq_id(11080);
  9.  script_version("$Revision: 1.3 $");
  10.  
  11.  name["english"] = "phpScheduleIt HTML Injection Vulnerability";
  12.  
  13.  script_name(english:name["english"]);
  14.  
  15.  desc["english"] = "
  16. The remote host is running phpScheduleIt, a web-based reservation system
  17. written in PHP.
  18.  
  19. According to its banner, this version is reported vulnerable to an HTML 
  20. injection issue. An attacker may add malicious HTML and Javascript code 
  21. in a schedule page if he has the right to edit the 'Schedule Name' field. 
  22. This field is not properly sanitized.  The malicious code would be executed 
  23. by a victim web browser displaying this schedule.
  24.  
  25. Solution : Upgrade to the latest version of this software
  26. Risk factor : Medium";
  27.  
  28.  script_description(english:desc["english"]);
  29.  
  30.  summary["english"] = "Checks for the presence of an XSS bug in phpScheduleIt";
  31.  
  32.  script_summary(english:summary["english"]);
  33.  
  34.  script_category(ACT_GATHER_INFO);
  35.  
  36.  script_copyright(english:"This script is Copyright (C) 2004 Tenable Network Security");
  37.  family["english"] = "CGI abuses";
  38.  family["francais"] = "Abus de CGI";
  39.  script_family(english:family["english"], francais:family["francais"]);
  40.  script_dependencie("http_version.nasl");
  41.  script_require_ports("Services/www", 80);
  42.  exit(0);
  43. }
  44.  
  45. #
  46. # The script code starts here
  47. #
  48.  
  49.  
  50. include("http_func.inc");
  51. include("http_keepalive.inc");
  52.  
  53. port = get_http_port(default:80);
  54.  
  55. if(!get_port_state(port))exit(0);
  56. if(!can_host_php(port:port))exit(0);
  57.  
  58. function check(loc)
  59. {
  60.  req = http_get(item:string(loc, "/index.php"), port:port);
  61.  r = http_keepalive_send_recv(port:port, data:req, bodyonly:1);
  62.  if( r == NULL )exit(0);
  63.  str = egrep(pattern:"phpScheduleIt v", string:r);
  64.  if ( str )
  65.  {
  66.         version = ereg_replace(pattern:".*phpScheduleIt v([^<]*)<.*", string:str, replace:"\1");
  67.     if ( loc == "" ) loc = "/";
  68.     set_kb_item(name:"www/" + port + "/phpScheduleIt", value:version + " under " + loc);
  69.  
  70.     if ( ereg(pattern:"^(0\..*|1\.0\.0 RC1)", string:version) ) 
  71.         {
  72.      security_warning(port);
  73.     exit(0);
  74.         }
  75.  }
  76. }
  77.  
  78.  
  79. foreach dir (cgi_dirs())
  80. {
  81.  check(loc:dir);
  82. }
  83.  
  84.